<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Schedulatore EDF:  File sorgente trunk/types.h</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generato da Doxygen 1.7.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Cerca');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Pagina&nbsp;Principale</span></a></li>
      <li><a href="annotated.html"><span>Classi</span></a></li>
      <li class="current"><a href="files.html"><span>File</span></a></li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Cerca" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>Elenco&nbsp;dei&nbsp;file</span></a></li>
      <li><a href="globals.html"><span>Membri&nbsp;dei&nbsp;file</span></a></li>
    </ul>
  </div>
<div class="header">
  <div class="headertitle">
<h1>trunk/types.h</h1>  </div>
</div>
<div class="contents">
<a href="types_8h.html">Vai alla documentazione di questo file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#pragma once</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#include &lt;time.h&gt;</span>
<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;windows.h&gt;</span>
<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;queue&gt;</span>
<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;pthread.h&gt;</span>
<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;semaphore.h&gt;</span>
<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;sched.h&gt;</span>
<a name="l00008"></a>00008 <span class="preprocessor">#include &lt;string&gt;</span>
<a name="l00009"></a>00009 
<a name="l00010"></a>00010 <span class="keyword">using namespace </span>std;
<a name="l00011"></a>00011 
<a name="l00012"></a>00012 <span class="comment">// DEFINIZIONE DEGLI ERRORI</span>
<a name="l00013"></a><a class="code" href="types_8h.html#aa6a31e94798d5a5d01eb6496550183f8">00013</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> SCHERR;
<a name="l00014"></a><a class="code" href="types_8h.html#aba51915c87d64af47fb1cc59348961c9">00014</a> <span class="preprocessor">#define OK                                              0</span>
<a name="l00015"></a><a class="code" href="types_8h.html#a88d838087aab6c53d2977ed91c58753e">00015</a> <span class="preprocessor"></span><span class="preprocessor">#define GENERIC_ERROR                   1</span>
<a name="l00016"></a><a class="code" href="types_8h.html#a49f2f28b77ec706f113957e1977d591e">00016</a> <span class="preprocessor"></span><span class="preprocessor">#define TASK_NOT_FEASIBLE               2</span>
<a name="l00017"></a><a class="code" href="types_8h.html#a7b756e7f12041ad5d8ace62331e55e3b">00017</a> <span class="preprocessor"></span><span class="preprocessor">#define ORDER_INCONSISTECE              3</span>
<a name="l00018"></a><a class="code" href="types_8h.html#a1c00c7a426bc50d6893a07424410a22e">00018</a> <span class="preprocessor"></span><span class="preprocessor">#define PTT_MUTEX_ERROR                 4</span>
<a name="l00019"></a><a class="code" href="types_8h.html#ab9648037c590baa12ed6ab6bdfbddee4">00019</a> <span class="preprocessor"></span><span class="preprocessor">#define ATT_MUTEX_ERROR                 5</span>
<a name="l00020"></a><a class="code" href="types_8h.html#aae045117cf62bb98924a8217406f0222">00020</a> <span class="preprocessor"></span><span class="preprocessor">#define RL_MUTEX_ERROR                  6</span>
<a name="l00021"></a><a class="code" href="types_8h.html#adad3911cb5ca4209e5ce59aae7ca4af8">00021</a> <span class="preprocessor"></span><span class="preprocessor">#define PTM_SEM_ERROR                   7</span>
<a name="l00022"></a><a class="code" href="types_8h.html#ad064fd7b02f0a3eb3158ee7cee0195d7">00022</a> <span class="preprocessor"></span><span class="preprocessor">#define ATM_SEM_ERROR                   8</span>
<a name="l00023"></a><a class="code" href="types_8h.html#afb3f798ba9054142d03b8766ecb9bcc2">00023</a> <span class="preprocessor"></span><span class="preprocessor">#define RLM_SEM_ERROR                   9</span>
<a name="l00024"></a><a class="code" href="types_8h.html#aaf9bf3436addd1b5dc84a9f24592d9dc">00024</a> <span class="preprocessor"></span><span class="preprocessor">#define READY_SEM_ERROR                 10</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="comment">// Funzioni per la conversione o la gestione dei diversi formati temporali.</span>
<a name="l00027"></a><a class="code" href="types_8h.html#ab17ea84f255285389881b90f056cea05">00027</a> <span class="preprocessor">#define TIMESPEC_TO_FILETIME_OFFSET (((LONGLONG)27111902 &lt;&lt; 32) + (LONGLONG)3577643008)</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span>
<a name="l00033"></a>00033 timespec <a class="code" href="types_8cpp.html#a6574a7ea6e40d97697745612786c2bbb">doubleToTimespec</a>(<span class="keywordtype">double</span> sec);
<a name="l00034"></a>00034 
<a name="l00039"></a>00039 <span class="keywordtype">double</span>  <a class="code" href="types_8cpp.html#a0ef58afeb0f219c76d03e380e29bc90b">timespecToDouble</a>(timespec ts);
<a name="l00040"></a>00040 
<a name="l00045"></a>00045 <span class="keywordtype">int</span> <a class="code" href="types_8cpp.html#ac566b105272e39a14cadca060a422691">tsCompare</a>(timespec t1, timespec t2);
<a name="l00046"></a>00046 
<a name="l00050"></a>00050 <span class="keywordtype">void</span> <a class="code" href="types_8h.html#a201e9edfed341ce5319354fdcf1e0a2d">fileTimeToTimespec</a>(<span class="keyword">const</span> FILETIME *ft, timespec *ts);
<a name="l00051"></a>00051 
<a name="l00056"></a>00056 <span class="keywordtype">void</span> <a class="code" href="types_8cpp.html#a433db403ec2816740ff43d87e30ffa6e">get_time</a>(timespec *ts);
<a name="l00057"></a>00057 
<a name="l00058"></a>00058 
<a name="l00062"></a><a class="code" href="struct___job.html">00062</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___job.html">_Job</a>
<a name="l00063"></a>00063 {
<a name="l00064"></a><a class="code" href="struct___job.html#ae7cb968121bfb7d6d556742eed72a541">00064</a>         <a class="code" href="struct___job.html#ae7cb968121bfb7d6d556742eed72a541">_Job</a>() {}
<a name="l00065"></a><a class="code" href="struct___job.html#a2eeff33af55d2cf5f67631ab31044c9e">00065</a>         <a class="code" href="struct___job.html">_Job</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> jobID, timespec release, timespec execution, timespec deadline)
<a name="l00066"></a>00066                 :iID(jobID), 
<a name="l00067"></a>00067                 tRelease(release),
<a name="l00068"></a>00068                 tExecution(execution),
<a name="l00069"></a>00069                 tDeadline(deadline)
<a name="l00070"></a>00070         {}
<a name="l00071"></a>00071 
<a name="l00072"></a><a class="code" href="struct___job.html#a1010bc83493e2cdbafef7a943e3cfb0f">00072</a>         <a class="code" href="struct___job.html">_Job</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> jobID, <span class="keywordtype">double</span> release, <span class="keywordtype">double</span> execution, <span class="keywordtype">double</span> deadline)
<a name="l00073"></a>00073                 :iID(jobID),
<a name="l00074"></a>00074                 tRelease(<a class="code" href="types_8cpp.html#a6574a7ea6e40d97697745612786c2bbb">doubleToTimespec</a>(release)),
<a name="l00075"></a>00075                 tExecution(<a class="code" href="types_8cpp.html#a6574a7ea6e40d97697745612786c2bbb">doubleToTimespec</a>(execution)),
<a name="l00076"></a>00076                 tDeadline(<a class="code" href="types_8cpp.html#a6574a7ea6e40d97697745612786c2bbb">doubleToTimespec</a>(deadline))
<a name="l00077"></a>00077         {}
<a name="l00078"></a>00078 
<a name="l00079"></a><a class="code" href="struct___job.html#a0cc08a0f31847eb96eb09ecf77d38e63">00079</a>         <a class="code" href="struct___job.html">_Job</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> jobID, <span class="keywordtype">double</span> release, <span class="keywordtype">double</span> execution)
<a name="l00080"></a>00080                 :iID(jobID),
<a name="l00081"></a>00081                 tRelease(<a class="code" href="types_8cpp.html#a6574a7ea6e40d97697745612786c2bbb">doubleToTimespec</a>(release)),
<a name="l00082"></a>00082                 tExecution(<a class="code" href="types_8cpp.html#a6574a7ea6e40d97697745612786c2bbb">doubleToTimespec</a>(execution)),
<a name="l00083"></a>00083                 tDeadline(<a class="code" href="types_8cpp.html#a6574a7ea6e40d97697745612786c2bbb">doubleToTimespec</a>(10000))
<a name="l00084"></a>00084         {}
<a name="l00085"></a>00085         
<a name="l00086"></a><a class="code" href="struct___job.html#a497d272e3beb46df4b782bcb61e5049f">00086</a>         <span class="keywordtype">bool</span> operator == (<a class="code" href="struct___job.html">_Job</a> &amp;j2) { <span class="keywordflow">return</span> ((iID == j2.<a class="code" href="struct___job.html#a060bdd59c13e352819dd6944a8925351" title="ID del job.">iID</a>) &amp;&amp; (iTaskID == j2.<a class="code" href="struct___job.html#af7fdf68d3c8add5ad0dc659672e0b3a5" title="ID del task generatore.">iTaskID</a>)); }
<a name="l00087"></a><a class="code" href="struct___job.html#a1c747be658692d230450d0d2472ebe77">00087</a>         <span class="keywordtype">bool</span> operator != (<a class="code" href="struct___job.html">_Job</a> &amp;j2) { <span class="keywordflow">return</span> ((iID != j2.<a class="code" href="struct___job.html#a060bdd59c13e352819dd6944a8925351" title="ID del job.">iID</a>) || (iTaskID != j2.<a class="code" href="struct___job.html#af7fdf68d3c8add5ad0dc659672e0b3a5" title="ID del task generatore.">iTaskID</a>)); }
<a name="l00088"></a><a class="code" href="struct___job.html#af7fdf68d3c8add5ad0dc659672e0b3a5">00088</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> iTaskID;  
<a name="l00089"></a><a class="code" href="struct___job.html#a060bdd59c13e352819dd6944a8925351">00089</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> iID;              
<a name="l00090"></a><a class="code" href="struct___job.html#acf1c28f15777558f7774ca74965714b7">00090</a>         timespec tRelease;              
<a name="l00091"></a><a class="code" href="struct___job.html#ab166b52f3da08fcfe6ccde79bb2e3d09">00091</a>         timespec tExecution;    
<a name="l00092"></a><a class="code" href="struct___job.html#a54378e7bbd0c18775eee8f25decf39c2">00092</a>         timespec tDeadline;             
<a name="l00093"></a>00093 }<a class="code" href="struct___job.html">Job</a>;
<a name="l00094"></a>00094 
<a name="l00098"></a><a class="code" href="struct___a_task.html">00098</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___a_task.html">_ATask</a>
<a name="l00099"></a>00099 {
<a name="l00100"></a><a class="code" href="struct___a_task.html#aa4bc26ead497527f55633efb1c68a34e">00100</a>         <a class="code" href="struct___a_task.html#aa4bc26ead497527f55633efb1c68a34e">_ATask</a>() {}
<a name="l00101"></a><a class="code" href="struct___a_task.html#a4729e9498866c9fad6854250cbaf36eb">00101</a>         <a class="code" href="struct___a_task.html">_ATask</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> taskID, vector&lt;Job&gt; jobList)
<a name="l00102"></a>00102                 :iID(taskID),
<a name="l00103"></a>00103                 vJob(jobList)
<a name="l00104"></a>00104         {
<a name="l00105"></a>00105                 <span class="comment">// assegna l&#39;ID del Task genitore a tutti i job.</span>
<a name="l00106"></a>00106                 <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; vJob.size(); i++)
<a name="l00107"></a>00107                         vJob[i].iTaskID = iID;
<a name="l00108"></a>00108         }
<a name="l00109"></a><a class="code" href="struct___a_task.html#af36b1fc5b755a684aec56a07d3dc90a8">00109</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> iID;      
<a name="l00110"></a><a class="code" href="struct___a_task.html#afe9b65e2bd6ff7089f4245c79cc7212a">00110</a>         vector&lt;Job&gt; vJob;       
<a name="l00111"></a>00111 }<a class="code" href="struct___a_task.html">ATask</a>;
<a name="l00112"></a>00112 
<a name="l00116"></a><a class="code" href="struct___p_task.html">00116</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___p_task.html">_PTask</a>
<a name="l00117"></a>00117 {
<a name="l00118"></a><a class="code" href="struct___p_task.html#a01e251424ec9d5f1a25d6c9d38749954">00118</a>         <a class="code" href="struct___p_task.html#a01e251424ec9d5f1a25d6c9d38749954">_PTask</a>() {}
<a name="l00119"></a><a class="code" href="struct___p_task.html#aa6942d55199c99823f43cd032c95f41e">00119</a>         <a class="code" href="struct___p_task.html">_PTask</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> taskID, <a class="code" href="struct___job.html">Job</a> job, timespec phase, timespec period)
<a name="l00120"></a>00120                 :tPhase(phase),
<a name="l00121"></a>00121                 tPeriod(period),
<a name="l00122"></a>00122                 iID(taskID),
<a name="l00123"></a>00123                 jJob(job)
<a name="l00124"></a>00124         {
<a name="l00125"></a>00125                 <span class="comment">// aggiunge la fase al tempo di rilascio del job</span>
<a name="l00126"></a>00126                 jJob.tRelease.tv_sec += phase.tv_sec;
<a name="l00127"></a>00127                 jJob.tRelease.tv_nsec += phase.tv_nsec;
<a name="l00128"></a>00128                 jJob.iTaskID = taskID;
<a name="l00129"></a>00129                 <span class="comment">// la densità di un tastk periodico è pari a execution/min{deadline,period}</span>
<a name="l00130"></a>00130                 <span class="keywordflow">if</span>(<a class="code" href="types_8cpp.html#ac566b105272e39a14cadca060a422691">tsCompare</a>(period, job.<a class="code" href="struct___job.html#a54378e7bbd0c18775eee8f25decf39c2" title="tempo di dealdine.">tDeadline</a>) &gt; 0)
<a name="l00131"></a>00131                         dDensity = <a class="code" href="types_8cpp.html#a0ef58afeb0f219c76d03e380e29bc90b">timespecToDouble</a>(job.<a class="code" href="struct___job.html#ab166b52f3da08fcfe6ccde79bb2e3d09" title="tempo di esecuzione.">tExecution</a>) / <a class="code" href="types_8cpp.html#a0ef58afeb0f219c76d03e380e29bc90b">timespecToDouble</a>(job.<a class="code" href="struct___job.html#a54378e7bbd0c18775eee8f25decf39c2" title="tempo di dealdine.">tDeadline</a>);
<a name="l00132"></a>00132                 <span class="keywordflow">else</span>
<a name="l00133"></a>00133                         dDensity = <a class="code" href="types_8cpp.html#a0ef58afeb0f219c76d03e380e29bc90b">timespecToDouble</a>(job.<a class="code" href="struct___job.html#ab166b52f3da08fcfe6ccde79bb2e3d09" title="tempo di esecuzione.">tExecution</a>) / <a class="code" href="types_8cpp.html#a0ef58afeb0f219c76d03e380e29bc90b">timespecToDouble</a>(period);
<a name="l00134"></a>00134         }
<a name="l00135"></a>00135 
<a name="l00136"></a><a class="code" href="struct___p_task.html#afd1e116e9f09b607903d24826d7c058e">00136</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> iID;      
<a name="l00137"></a><a class="code" href="struct___p_task.html#ab0c6a4389fc2464a27d9285bd1d29254">00137</a>         <a class="code" href="struct___job.html">Job</a>     jJob;                   
<a name="l00138"></a><a class="code" href="struct___p_task.html#a4db64e092a4aeffbf481328c6466293f">00138</a>         <span class="keywordtype">double</span>  dDensity;       
<a name="l00139"></a><a class="code" href="struct___p_task.html#aafe46ceddf14717936327b8e9b288ff2">00139</a>         timespec tPhase;        
<a name="l00140"></a><a class="code" href="struct___p_task.html#ade1e672d058eed14a62aaab3bd234dd8">00140</a>         timespec tPeriod;       
<a name="l00141"></a>00141 }<a class="code" href="struct___p_task.html">PTask</a>;
<a name="l00142"></a>00142 
<a name="l00146"></a><a class="code" href="struct___kiwi_event.html">00146</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___kiwi_event.html">_KiwiEvent</a>{
<a name="l00147"></a><a class="code" href="struct___kiwi_event.html#a07b5a20c7f25db057cbb25e4090f2236">00147</a>         <a class="code" href="struct___kiwi_event.html#a07b5a20c7f25db057cbb25e4090f2236">_KiwiEvent</a>() {}
<a name="l00148"></a><a class="code" href="struct___kiwi_event.html#a41a04d3acba77560a78f586d3b4dfddd">00148</a>         <a class="code" href="struct___kiwi_event.html">_KiwiEvent</a>(timespec time, <span class="keywordtype">char</span>* event_type, <span class="keywordtype">int</span> task_id) 
<a name="l00149"></a>00149                 :tsTime(time),
<a name="l00150"></a>00150                 sMessage(event_type),
<a name="l00151"></a>00151                 iTtaskID(task_id)
<a name="l00152"></a>00152         {}
<a name="l00153"></a><a class="code" href="struct___kiwi_event.html#ab9260e5fcef3c1063c5872236cb2dd4c">00153</a>         timespec tsTime;        
<a name="l00154"></a><a class="code" href="struct___kiwi_event.html#a0e227692ab72833a355f815aca7fd5f4">00154</a>         <span class="keywordtype">char</span>* sMessage;         
<a name="l00155"></a><a class="code" href="struct___kiwi_event.html#a044c952e85e188c561025f1b06d10d01">00155</a>         <span class="keywordtype">int</span> iTtaskID;           
<a name="l00156"></a>00156 
<a name="l00157"></a>00157 }<a class="code" href="struct___kiwi_event.html">KiwiEvent</a>;
<a name="l00158"></a>00158 
<a name="l00162"></a><a class="code" href="struct___job_deadline_orderer.html">00162</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___job_deadline_orderer.html">_JobDeadlineOrderer</a>
<a name="l00163"></a>00163 {
<a name="l00164"></a><a class="code" href="struct___job_deadline_orderer.html#aba34f2c8a409492f2b4239a24234939f">00164</a>         <span class="keywordtype">bool</span> operator()(<a class="code" href="struct___job.html">Job</a> &amp;j1, <a class="code" href="struct___job.html">Job</a> &amp;j2)
<a name="l00165"></a>00165         { 
<a name="l00166"></a>00166                 <span class="keywordflow">return</span> (<a class="code" href="types_8cpp.html#ac566b105272e39a14cadca060a422691">tsCompare</a>(j1.<a class="code" href="struct___job.html#a54378e7bbd0c18775eee8f25decf39c2" title="tempo di dealdine.">tDeadline</a>, j2.<a class="code" href="struct___job.html#a54378e7bbd0c18775eee8f25decf39c2" title="tempo di dealdine.">tDeadline</a>) == 1);
<a name="l00167"></a>00167         }
<a name="l00168"></a>00168 }<a class="code" href="struct___job_deadline_orderer.html">JobDeadlineOrderer</a>;
<a name="l00169"></a>00169 
<a name="l00173"></a><a class="code" href="struct___a_task_release_orderer.html">00173</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___a_task_release_orderer.html">_ATaskReleaseOrderer</a>
<a name="l00174"></a>00174 {
<a name="l00175"></a><a class="code" href="struct___a_task_release_orderer.html#a549c67fb58d2a4bfdb10b87234cd649b">00175</a>         <span class="keywordtype">bool</span> operator()(<a class="code" href="struct___a_task.html">ATask</a> &amp;t1, <a class="code" href="struct___a_task.html">ATask</a> &amp;t2) 
<a name="l00176"></a>00176         {
<a name="l00177"></a>00177                 <span class="keywordflow">return</span>  (<a class="code" href="types_8cpp.html#ac566b105272e39a14cadca060a422691">tsCompare</a>(t1.<a class="code" href="struct___a_task.html#afe9b65e2bd6ff7089f4245c79cc7212a" title="array contenente i vari job da eseguire">vJob</a>.front().tRelease, t2.<a class="code" href="struct___a_task.html#afe9b65e2bd6ff7089f4245c79cc7212a" title="array contenente i vari job da eseguire">vJob</a>.front().tRelease) == 1);
<a name="l00178"></a>00178         }
<a name="l00179"></a>00179 }<a class="code" href="struct___a_task_release_orderer.html">ATaskReleaseOrderer</a>;
<a name="l00180"></a>00180 
<a name="l00184"></a><a class="code" href="struct___p_task_release_orderer.html">00184</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___p_task_release_orderer.html">_PTaskReleaseOrderer</a>
<a name="l00185"></a>00185 {
<a name="l00186"></a><a class="code" href="struct___p_task_release_orderer.html#ae346728ee98555109668e719f7a29f15">00186</a>         <span class="keywordtype">bool</span> operator()(<a class="code" href="struct___p_task.html">PTask</a> &amp;t1, <a class="code" href="struct___p_task.html">PTask</a> &amp;t2) 
<a name="l00187"></a>00187         {
<a name="l00188"></a>00188                 <span class="keywordflow">return</span>  (<a class="code" href="types_8cpp.html#ac566b105272e39a14cadca060a422691">tsCompare</a>(t1.<a class="code" href="struct___p_task.html#ab0c6a4389fc2464a27d9285bd1d29254" title="job da eseguire periodicamente.">jJob</a>.<a class="code" href="struct___job.html#acf1c28f15777558f7774ca74965714b7" title="tempo di rilascio del job.">tRelease</a>, t2.<a class="code" href="struct___p_task.html#ab0c6a4389fc2464a27d9285bd1d29254" title="job da eseguire periodicamente.">jJob</a>.<a class="code" href="struct___job.html#acf1c28f15777558f7774ca74965714b7" title="tempo di rilascio del job.">tRelease</a>) == 1);
<a name="l00189"></a>00189         }
<a name="l00190"></a>00190 }<a class="code" href="struct___p_task_release_orderer.html">PTaskReleaseOrderer</a>;
<a name="l00191"></a>00191 
<a name="l00195"></a><a class="code" href="struct___p_task_deadline_orderer.html">00195</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___p_task_deadline_orderer.html">_PTaskDeadlineOrderer</a>
<a name="l00196"></a>00196 {
<a name="l00197"></a><a class="code" href="struct___p_task_deadline_orderer.html#a4b1372cca64d48f9b70b4ec496f2c0a4">00197</a>         <span class="keywordtype">bool</span> operator()(<a class="code" href="struct___p_task.html">PTask</a> &amp;t1, <a class="code" href="struct___p_task.html">PTask</a> &amp;t2) 
<a name="l00198"></a>00198         {
<a name="l00199"></a>00199                 <span class="keywordflow">return</span>  (<a class="code" href="types_8cpp.html#ac566b105272e39a14cadca060a422691">tsCompare</a>(t1.<a class="code" href="struct___p_task.html#ab0c6a4389fc2464a27d9285bd1d29254" title="job da eseguire periodicamente.">jJob</a>.<a class="code" href="struct___job.html#a54378e7bbd0c18775eee8f25decf39c2" title="tempo di dealdine.">tDeadline</a>, t2.<a class="code" href="struct___p_task.html#ab0c6a4389fc2464a27d9285bd1d29254" title="job da eseguire periodicamente.">jJob</a>.<a class="code" href="struct___job.html#a54378e7bbd0c18775eee8f25decf39c2" title="tempo di dealdine.">tDeadline</a>) == 1);
<a name="l00200"></a>00200         }
<a name="l00201"></a>00201 }<a class="code" href="struct___p_task_deadline_orderer.html">PTaskDeadlineOrderer</a>;
<a name="l00202"></a>00202 
<a name="l00206"></a><a class="code" href="struct___kiwi_event_orderer.html">00206</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___kiwi_event_orderer.html">_KiwiEventOrderer</a>
<a name="l00207"></a>00207 {
<a name="l00208"></a><a class="code" href="struct___kiwi_event_orderer.html#a2cbcd03e81d30f3de84ce67e6631414c">00208</a>         <span class="keywordtype">bool</span> operator()(<a class="code" href="struct___kiwi_event.html">KiwiEvent</a> &amp;e1, <a class="code" href="struct___kiwi_event.html">KiwiEvent</a> &amp;e2)
<a name="l00209"></a>00209         { 
<a name="l00210"></a>00210                 <span class="keywordflow">return</span> (<a class="code" href="types_8cpp.html#ac566b105272e39a14cadca060a422691">tsCompare</a>(e1.<a class="code" href="struct___kiwi_event.html#ab9260e5fcef3c1063c5872236cb2dd4c" title="istante temporale dell&amp;#39;evento.">tsTime</a>, e2.<a class="code" href="struct___kiwi_event.html#ab9260e5fcef3c1063c5872236cb2dd4c" title="istante temporale dell&amp;#39;evento.">tsTime</a>) == 1);
<a name="l00211"></a>00211         }
<a name="l00212"></a>00212 }<a class="code" href="struct___kiwi_event_orderer.html">KiwiEventOrderer</a>;
<a name="l00213"></a>00213 
<a name="l00214"></a><a class="code" href="types_8h.html#a56c0d89774db65cbed9a88f6801898e3">00214</a> <span class="keyword">typedef</span> priority_queue&lt;ATask, deque&lt;ATask&gt;, <a class="code" href="struct___a_task_release_orderer.html">ATaskReleaseOrderer</a>&gt; ATaskRPrQue;   
<a name="l00215"></a><a class="code" href="types_8h.html#a550957e9dbf1dbf60e8abbc61713ab43">00215</a> <span class="keyword">typedef</span> priority_queue&lt;PTask, deque&lt;PTask&gt;, <a class="code" href="struct___p_task_release_orderer.html">PTaskReleaseOrderer</a>&gt; PTaskRPrQue;   
<a name="l00216"></a><a class="code" href="types_8h.html#af5c5003f57009649b21104c442409a2d">00216</a> <span class="keyword">typedef</span> priority_queue&lt;PTask, deque&lt;PTask&gt;, <a class="code" href="struct___p_task_deadline_orderer.html">PTaskDeadlineOrderer</a>&gt; PTaskDPrQue;  
<a name="l00217"></a><a class="code" href="types_8h.html#a42d6bbc221c566edb75d253be9baeaf3">00217</a> <span class="keyword">typedef</span> priority_queue&lt;Job,   deque&lt;Job&gt;,   <a class="code" href="struct___job_deadline_orderer.html">JobDeadlineOrderer</a>&gt; JobPrQue;               
<a name="l00218"></a><a class="code" href="types_8h.html#a290c812454ee753054e4cc4c0e502950">00218</a> <span class="keyword">typedef</span> priority_queue&lt;KiwiEvent,deque&lt;KiwiEvent&gt;,<a class="code" href="struct___kiwi_event_orderer.html">KiwiEventOrderer</a>&gt; KePrQue;    
</pre></div></div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>Tutto</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classi</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>File</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Funzioni</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variabili</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Ridefinizioni di tipo (typedef)</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Definizioni</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address class="footer"><small>Generato il Fri Sep 10 2010 15:26:14 per Schedulatore EDF da&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>
